課程名稱 |
編譯程式設計 COMPILER DESIGN |
開課學期 |
96-2 |
授課對象 |
資訊工程學系 |
授課教師 |
薛智文 |
課號 |
CSIE3230 |
課程識別碼 |
902 39200 |
班次 |
01 |
學分 |
3 |
全/半年 |
半年 |
必/選修 |
必帶 |
上課時間 |
星期一2,3,4(9:10~12:10) |
上課地點 |
資103 |
備註 |
限本系所學生(含輔系、雙修生) 總人數上限:160人 |
|
|
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
Compiler |
課程目標 |
1. Introduction (ch#1, reading ch1.6 and ch#2 by yourself is expected.)
2. Lexical analysis (Scanner) (ch#3.1–3.4, 3.6, 3.7, 3.5, 3.8):
* regular expressions, finite state automata, LEX
3. Syntax analysis (Parser) (ch#4.1–4.7):
* context-free grammar, top-down parsing, LL(1), bottom-up parsing, SLR, LR(0), LR(1), LALR(1)
4. Syntax-directed translation (ch#5.1–5.6, 4.8, 4.9):
* Syntax-directed translation, using ambiguous grammar, YACC
5. Symbol tables (ch#2.7, 6.5):
* data structures for symbol tables, type checking
6. Intermediate code generation (ch#6.1–6.4,6.6–6.8):
* intermediate code, declarations, ex-pressions, advanced data structure, control flow, procedure/function, other statements
7. Run time storage organization (ch#7.1–7.4):
* stack, access to nolocal data, heap
8. Optimization (ch#8.4,8.5,8.6,9.1,9.2,8.7):
* basic blocks, flow graphs, machine-independent optimizations
9. How to write a compiler
10. Advanced topics1:
* garbage collection (ch#7.5–7.8), parallelism (ch#10, ch#11), ...
|
課程要求 |
* homeworks (25%): one homework per 2 to 3 lectures.
* mid-term exam (35%);
* final project (40%): check points, documents, presentation, and testing;
* class participation and performance.
|
預期每週課後學習時數 |
|
Office Hours |
|
指定閱讀 |
|
參考書目 |
Textbook:
|
評量方式 (僅供參考) |
|
|